Skip to content

Update CI to GitHub Actions#134

Merged
wader merged 4 commits intocortesi:masterfrom
chebread:update-ci
Mar 26, 2026
Merged

Update CI to GitHub Actions#134
wader merged 4 commits intocortesi:masterfrom
chebread:update-ci

Conversation

@chebread
Copy link
Copy Markdown
Contributor

@chebread chebread commented Mar 26, 2026

I have updated the CI pipeline to use GitHub Actions, replacing the broken Travis CI and AppVeyor setups.

Changes

  • Removed .travis.yml: Travis CI is no longer functional for this repo.
  • Added .github/workflows/ci.yml: A modern, unified pipeline that tests on Ubuntu, macOS, and Windows using Go 1.25.x (matching the updated go.mod).
  • Integrated Quality Checks: The workflow now strictly validates gofmt, go vet, go install, and go test -race on every PR and push to master.

Technical Implementation Details

  • I've explicitly set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true. This prepares the repository for the upcoming Node 20 EOL (April 2026) and ensures the CI remains functional and secure without deprecation warnings.
  • Added workflow_dispatch to allow manual trigger of the CI from the Actions tab, providing better control for debugging or maintenance.
  • Strict Quality Gate
    • gofmt: Ensures all contributions follow the standard Go style, reducing reviewer burden.
    • go vet: Catch common logical errors at the CI stage.
    • Beyond unit tests, I've added go run ./cmd/devd --help to verify the final binary's execution integrity across all platforms.

Note

  • I found that AppVeyor was likely configured via the Web UI rather than a .appveyor.yml file, as no such file existed in the root. Therefore, I could not "delete" its configuration via git. Once this PR is merged, the repository owner should manually disable the AppVeyor project in its admin dashboard to avoid redundant (and failing) builds.

  • The Run gofmt to fix formatting issues commit was added because the new GitHub Actions workflow now strictly enforces gofmt compliance—a check that was missing in the previous CI setup. This ensures the entire repository adheres to official Go standards moving forward.

Verification

I have verified this entire workflow on my fork, and all three OS environments (Ubuntu, macOS, Windows) passed the build and test suites successfully.

You can verify the successful CI runs here: https://github.com/chebread/devd/actions

Remove broken Travis CI configuration (.travis.yml)
Add GitHub Actions workflow for testing on ubuntu, macos, and windows
Strictly test on Go 1.25.x to match the go.mod directive
Include gofmt, go vet, and go install to ensure build integrity
Comment thread .github/workflows/ci.yml Outdated
exit 1
fi

- name: Run go vet (lint)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if: matrix.os == 'ubuntu-latest' also? or combine fmt and vet in one step?

Copy link
Copy Markdown
Collaborator

@wader wader left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍 just one suggestion. I'll merge once you confirm

@wader wader merged commit d0a208f into cortesi:master Mar 26, 2026
1 check failed
@chebread
Copy link
Copy Markdown
Contributor Author

@wader, Great suggestion! I have combined the fmt and vet steps into a single Lint step and restricted it to run only on ubuntu-latest. Please review this and decide whether to merge it.

@wader
Copy link
Copy Markdown
Collaborator

wader commented Mar 26, 2026

Looks like it ran fine https://github.com/cortesi/devd/actions/runs/23621673191 🥳

@chebread
Copy link
Copy Markdown
Contributor Author

Confirmed! 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants